<?php

// 引入函数库文件
include_once('functions.php');

// 定义生成验证码的图片宽度以及高度
$width = 80;
$height = 34;

// 创建画布
$img = imagecreatetruecolor($width,$height);

// 定义背景色
$bgColor = imagecolorallocate($img,238,238,238);

// 把背景色加入到图片里
imagefilledrectangle($img,0,0,$width,$height,$bgColor);

// 定义文字颜色
$textColor = imagecolorallocate($img,255,0,0);

// 获取4个随机字符
$str1 = build_ranstr(1);
$str2 = build_ranstr(1);
$str3 = build_ranstr(1);
$str4 = build_ranstr(1);

// 定义字体文件 最好用绝对路径
$font = 'D:/www/PHP/company/assets/fonts/OpenSans-Light.ttf';

// 把字符也加入到图片里
imagettftext($img,16,mt_rand(-30,30),5,26,$textColor,$font,$str1);
imagettftext($img,16,mt_rand(-30,30),20,26,$textColor,$font,$str2);
imagettftext($img,16,mt_rand(-30,30),40,26,$textColor,$font,$str3);
imagettftext($img,16,mt_rand(-30,30),60,26,$textColor,$font,$str4);

// 绘制一些点状像素
for($i = 0;$i <= 20;$i++)
{
    imagesetpixel($img,mt_rand(0,$width),mt_rand(0,$height),imagecolorallocate($img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255)));
}

// 绘制一些线像素
for($i = 0;$i <= 5;$i++)
{
    imageline($img,mt_rand(0,$width),mt_rand(0,$height),mt_rand(0,$width),mt_rand(0,$height),imagecolorallocate($img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255)));
}

// 开启session会话
session_start();

// 把四个随机生成字符拼接起来
$code = $str1 . $str2 . $str3 . $str4;

// 设置会话变量
$_SESSION['code'] = $code;

// 设置头信息 => 告诉浏览器这个文件的类型
header('Content-Type:image/png');

// 将 PNG 图像输出到浏览器
imagepng($img);